草庐IT

Dev c++调试

全部标签

windows - 调试 WFP 标注驱动程序的选项有哪些

我是内核模式Windows驱动程序开发的新手,在从WFP标注示例中获取调试信息时遇到问题。我正在寻找更多选项或关于我一直在尝试的选项做错了什么的提示。首先,我下载了WFPsampler并按照其描述中的说明进行操作。我正在使用通过模拟串行电缆连接的Windows8.1x64主机和Windows7x64目标。它们都是VirtualBoxVM。我调试的主要命令是WFPSampler.Exe-sPROXY-lFWPM_LAYER_ALE_BIND_REDIRECT_V4-aaid"C:\ProgramFiles(x86)\InternetExplorer\iexplore.exe"-pla10

windows - 在 Windows 8.1 中将调试器附加到 Services.exe

我已尝试将调试器附加到Windows8.1中的Services.exe,但我始终收到“访问被拒绝”。即使在确保WinDbg以“管理员身份”运行(以提升启动)之后也是如此。只是为了测试,我尝试从任务管理器创建一个内存转储文件,但我得到了同样的错误。我还尝试使用Sysinternals(ProcExp)中的ProcessExplorer创建转储,但我遇到了同样的错误。上图为services.exe所在的进程树(使用procexp查看)。有趣的是,我们可以为wininit.exe和svchost.exe创建转储文件,但不能为services.exe创建转储文件。我让一些同事在Windows7

windows - 符号如何解决在 x86 调试中使用 FPO 遍历堆栈?

在这个答案中:https://stackoverflow.com/a/8646611/192359,解释了在调试x86代码时,即使使用了FPO(帧指针省略),符号也允许调试器显示调用堆栈。给出的解释是:Onthex86PDBscontainFPOinformation,whichallowsthedebuggertoreliablyunwindacallstack.我的问题是这些信息是什么?据我了解,仅知道函数是否具有FPO并不能帮助您找到堆栈指针的原始值,因为这取决于运行时信息。我在这里错过了什么? 最佳答案 从根本上说,总是可以

c++ - 调试器主循环

我正在尝试在c++/Windows中实现本文中描述的“调试器主循环”:WritingtheDebugger'sMainLoop但我希望任何抛出的异常都能在屏幕上显示错误消息并被调试器捕获。我知道我可以通过给ContinueDebugEvent一些DBG_值来做到这一点???但我不知道它是什么。这个值是多少?我还注意到,当有内容写入控制台时,控制台应用程序会通知调试器异常。我怎样才能从这些东西中过滤出实际的异常?跟“第一次机会”值有关系吗?谢谢:) 最佳答案 调试器会为被调试者中发生的每个异常接收一个异常事件。如果将DBG_CONTI

c++ - 从客户端应用程序调试动态库

假设我在Debug模式下编译了一个动态库(WindowsDLL和/或Linux共享对象文件,.so),供动态链接到它的客户端应用程序使用。我的源代码可供客户端应用程序开发人员使用。我需要对以下调试场景进行一些说明。我一直理解/假设为了让客户端应用程序调试到我的库中(例如,为了让客户端应用程序开发人员在调试时进入我的源代码,比如在MSVC++中使用F10),他们必须实际构建一个我的库本身的本地拷贝(可以访问我的源代码),或者至少可以在本地访问我的源代码而无需构建它(不确定这是否足够?)。我说得对吗?换句话说,如果客户端应用程序动态链接到我的应用程序,我认为仅仅提供带有调试符号的库(MSV

windows - MFC .dll 调试断言

我正在尝试创建一个shell扩展,但我在这行代码中得到了一个调试断言:_AFXWIN_INLINEHINSTANCEAFXAPIAfxGetResourceHandle(){ASSERT(afxCurrentResourceHandle!=NULL);//herereturnafxCurrentResourceHandle;}它有什么问题?我创建了这个类classCMyExtShellExtApp:publicCWinApp{public:virtualBOOLInitInstance();virtualintExitInstance();DECLARE_MESSAGE_MAP()};

windows - Visual Studio 2012 Windows 内核调试 - 无法提供 VM 目标

宿主:VisualStudio2012、Windows8宿主、WDK8目标:VirtualBox-Windows7当我尝试在VisualStudio中添加目标计算机(驱动程序->测试->配置计算机)时(如http://msdn.microsoft.com/en-us/library/windows/hardware/hh439359%28v=vs.85%29.aspx):我选择“配置计算机并选择调试器设置”我选择使用串行连接但结果总是“找不到VM名称的主机条目”如果我尝试通过网络连接,VS会给出相同的响应(我知道不支持通过网络从Win8主机到Win7目标的内核调试)。我看不到连接有问题

windows - 如何在 Eclipse Juno 中为 Windows 上的 C/C++ 设置调试器

我为C/C++开发人员安装了EclipseJuno。我创建了一个包含一些.c和.h文件以及一个makefile的小型示例项目。该项目似乎可以正常编译并创建一个可执行文件。然后我就可以在Eclipse和Windows中运行可执行文件。问题是如果我尝试调试。我收到以下错误消息:这是我的调试配置: 最佳答案 您需要为调试器选择一个解析器才能运行。http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.cdt.doc.user%2Ftasks%2Fcdt_t_proj_pa

c++ - 使用 rundll32.exe 调试 native dll,无法加载符号

我正在编写一个nativedll,该dll将与rundll32.exe一起运行(这是我们客户的义务)。我使用VS的调试属性来定义:Command:c:\windows\system32\rundll32.exeCommandArgument:$(TargetPath),ENTRY_POINTENTRY_POINT是我的dll的导出函数,它遵循rundll32.exe接口(interface)。此设置调用我的函数,但不会加载任何符号,因此不会触发任何断点。我了解到我的函数只有在调用MessageBox入口后才会被调用。当我使用自己的容器应用程序时(只是一个exe调用Loadlibrary

c - 配置 Visual Studio 进行调试时出现“访问被拒绝”错误

每当我尝试在VSExpress2013forDesktop上运行一些代码时,它都会说该项目已过时。当我搜索解决方案时,他们告诉我搜索devenv.exe.config但它不适合我,所以我猜WDExpress.exe.config是正确的。我打开它并粘贴:这没有用,所以我粘贴了:它们都是在之后粘贴的。我在这里找到的第二个街区:http://blogs.msdn.com/b/andrewarnottms/archive/2012/06/07/enable-c-and-javascript-project-system-tracing.aspx每当我尝试保存文件时,它都会说某种形式的访问被拒